package mx.ipn.pruebas;

import java.util.Collection;
import java.util.Iterator;

import mx.ipn.persistencia.FabricaDeDAOs;
import mx.ipn.persistencia.dao.CategoriaServicioDAO;
import mx.ipn.to.CategoriaServicioTO;
import mx.ipn.persistencia.dao.ColorAutoDAO;
import mx.ipn.to.ColorAutoTO;
import mx.ipn.to.StatusTO;
import mx.ipn.persistencia.dao.StatusDAO;

public class PruebaDAOS2 {
	public static void main(String args[]) {
		// crea un DAO para la tabla dia festivo
		FabricaDeDAOs fabricaMySQL = FabricaDeDAOs
				.getFabricaDeDAOs(mx.ipn.Constantes.FABRICA_DAOS_MYSQL);
		CategoriaServicioDAO categoriaServicioDAO = fabricaMySQL
				.getCategoriaServicioDAO();

		CategoriaServicioTO categoriaServicioTO = new CategoriaServicioTO(Short
				.parseShort(Integer.toString(30)), "bueno", "que descripcion",
				false);
		int resultado;

		// inserta categoria servicio
		if (categoriaServicioDAO.insertCategoriaServicio(categoriaServicioTO))
			System.out.println("Insertado correctamente");
		else
			System.out.println("Falla en la insercion");

		// borra categoria servicio
		resultado = categoriaServicioDAO.deleteCategoriaServicio(Short
				.parseShort(Integer.toString(14)));
		if (resultado == 1)
			System.out.println("Borrado correctamente");
		else if (resultado == 0)
			System.out.println("Falla en el borrado");
		else if (resultado == 2)
			System.out.println("Ocurrio una excepcion al borrar");

		// actualiza Categoria servicio
		categoriaServicioTO.setIdCategoriaServicio(Short.parseShort(Integer
				.toString(1)));
		categoriaServicioTO.setNombre("modificacion");
		resultado = categoriaServicioDAO
				.updateCategoriaServicio(categoriaServicioTO);
		if (resultado == 1)
			System.out.println("Actualizado correctamente");
		else if (resultado == 0)
			System.out.println("Falla en la actualizacion");
		else if (resultado == 2)
			System.out.println("Ocurrio una excepcion");

		// Busca categoria servicio por id
		categoriaServicioTO = categoriaServicioDAO
				.findCategoriaServicioById(Short
						.parseShort(Integer.toString(2)));
		if (categoriaServicioTO != null) {
			System.out.println("Seleccion exitosa");

			System.out.println("categoria Servicio");
			System.out.println("id_categoria_servicio: "
					+ categoriaServicioTO.getIdCategoriaServicio());
			System.out.println("descripcion: "
					+ categoriaServicioTO.getDescripcion());
			System.out.println("nombre: " + categoriaServicioTO.getNombre());
			System.out.println("tipo: " + categoriaServicioTO.getTipo());
		} else {
			System.out.println("Falla en la seleccion");
		}

		// Busca Categoria servicio por tipo
		Collection<CategoriaServicioTO> coleccionn = categoriaServicioDAO
				.selectCategoriasByTipo(false);
		if (coleccionn != null) {
			System.out.println("Seleccion exitosa");

			Iterator<CategoriaServicioTO> iteracionn = coleccionn.iterator();

			while (iteracionn.hasNext()) {
				categoriaServicioTO = iteracionn.next();

				System.out.println("Categoria Servicio por tipo");
				System.out.println("id_categoria_servicio: "
						+ categoriaServicioTO.getIdCategoriaServicio());
				System.out.println("descripcion: "
						+ categoriaServicioTO.getDescripcion());
				System.out
						.println("nombre: " + categoriaServicioTO.getNombre());
				System.out.println("tipo: " + categoriaServicioTO.getTipo());
			}
		} else {
			System.out.println("Falla en la seleccion");
		}

		// ***************************************************************************************
		ColorAutoDAO colorAutoDAO = fabricaMySQL.getColorAutoDAO();

		ColorAutoTO colorAutoTO = new ColorAutoTO(Short.parseShort(Integer
				.toString(30)), "violeta");

		// inserta color auto
		if (colorAutoDAO.insertColorAuto(colorAutoTO))
			System.out.println("Insertado correctamente");
		else
			System.out.println("Falla en la insercion");

		// borra colorAuto
		resultado = colorAutoDAO.deleteColorAuto(Short.parseShort(Integer
				.toString(11)));
		if (resultado == 1)
			System.out.println("Borrado correctamente");
		else if (resultado == 0)
			System.out.println("Falla en el borrado");
		else if (resultado == 2)
			System.out.println("Ocurrio una excepcion al borrar");

		// actualiza ColorAuto
		colorAutoTO.setIdColorAuto(Short.parseShort(Integer.toString(3)));
		colorAutoTO.setNombre("rosa");
		resultado = colorAutoDAO.updateColorAuto(colorAutoTO);
		if (resultado == 1)
			System.out.println("Actualizado correctamente");
		else if (resultado == 0)
			System.out.println("Falla en la actualizacion");
		else if (resultado == 2)
			System.out.println("Ocurrio una excepcion");

		// Busca colorAuto por id
		colorAutoTO = colorAutoDAO.findColorAutoById(Short.parseShort(Integer
				.toString(7)));
		if (categoriaServicioTO != null) {
			System.out.println("Seleccion exitosa");

			System.out.println("color auto");
			System.out
					.println("id_color_auto: " + colorAutoTO.getIdColorAuto());
			System.out.println("nombre: " + colorAutoTO.getNombre());
		} else {
			System.out.println("Falla en la seleccion");
		}

		// Busca Categoria servicio por tipo
		Collection<ColorAutoTO> coleccion = colorAutoDAO.selectColores();
		if (coleccion != null) {
			System.out.println("Seleccion exitosa");

			Iterator<ColorAutoTO> iteracionn = coleccion.iterator();

			while (iteracionn.hasNext()) {
				colorAutoTO = iteracionn.next();

				System.out.println("Colores de auto");
				System.out.println("id_color_auto: "
						+ colorAutoTO.getIdColorAuto());
				System.out.println("nombre: " + colorAutoTO.getNombre());
			}
		} else {
			System.out.println("Falla en la seleccion");
		}
		// *********************************************************************

		StatusDAO statusDAO = fabricaMySQL.getStatusDAO();

		StatusTO statusTO = new StatusTO(Short.parseShort(Integer
				.toString(30)), "maltratado");

		// inserta status
		if (statusDAO.insertStatus(statusTO))
			System.out.println("Insertado correctamente");
		else
			System.out.println("Falla en la insercion");

		// borra status
		resultado = statusDAO.deleteStatus(Short.parseShort(Integer
				.toString(11)));
		if (resultado == 1)
			System.out.println("Borrado correctamente");
		else if (resultado == 0)
			System.out.println("Falla en el borrado");
		else if (resultado == 2)
			System.out.println("Ocurrio una excepcion al borrar");

		// actualiza status
		statusTO.setIdStatus(Short.parseShort(Integer.toString(3)));
		statusTO.setNombre("otro");
		resultado = statusDAO.updateStatus(statusTO);
		if (resultado == 1)
			System.out.println("Actualizado correctamente");
		else if (resultado == 0)
			System.out.println("Falla en la actualizacion");
		else if (resultado == 2)
			System.out.println("Ocurrio una excepcion");

		// Busca status por id
		statusTO = statusDAO.findStatusById(Short.parseShort(Integer
				.toString(7)));
		if (statusTO != null) {
			System.out.println("Seleccion exitosa");

			System.out.println("status");
			System.out
					.println("id_status: " + statusTO.getIdStatus());
			System.out.println("nombre: " + colorAutoTO.getNombre());
		} else {
			System.out.println("Falla en la seleccion");
		}

		// Busca Status
		Collection<StatusTO> coleccionnn = statusDAO.selectStatus();
		if (coleccionnn != null) {
			System.out.println("Seleccion exitosa");

			Iterator<StatusTO> iteracionnn = coleccionnn.iterator();

			while (iteracionnn.hasNext()) {
				statusTO = iteracionnn.next();

				System.out.println("Status");
				System.out.println("id_status: "
						+ statusTO.getIdStatus());
				System.out.println("nombre: " + statusTO.getNombre());
			}
		} else {
			System.out.println("Falla en la seleccion");
		}

	}
}
